const fs = require('fs');
const path = require('path');

// 将图片文件转为 Base64 并带前缀
function imageToBase64(filePath) {
  // 读取文件并转换为 Base64
  const fileData = fs.readFileSync(filePath);
  const base64Data = fileData.toString('base64');

  // 获取文件扩展名并映射到 MIME 类型
  const extname = path.extname(filePath).toLowerCase();
  const mimeTypeMap = {
    '.jpg': 'image/jpeg',
    '.jpeg': 'image/jpeg',
    '.png': 'image/png',
    '.gif': 'image/gif',
    '.webp': 'image/webp',
    '.svg': 'image/svg+xml',
    '.ico': 'image/x-icon',
  };

  // 获取 MIME 类型，如果无法匹配则默认为二进制流
  const mimeType = mimeTypeMap[extname] || 'application/octet-stream';

  // 返回带前缀的 Base64 数据 URL
  return `data:${mimeType};base64,${base64Data}`;
}

// 示例：将图片转换为 Base64 并打印结果
const filePath = './images/IMG_20250325_204246.png'; // 替换为你的图片路径
const base64WithPrefix = imageToBase64(filePath);
console.log(base64WithPrefix);
